package com.penghe.www.baselibrary.utils

import android.content.Context
import java.io.File

/**
 * Created by alm on 17-6-1.
 * 文件缓存工具类
 */

class FileCache(context: Context) {
    /**
     * 缓存目录
     */
    private var cacheDir: File? = null

    /**
     * 根据url获取缓存文件

     * @param url 缓存文件url
     * *
     * @return 缓存文件
     */
    fun getFile(url: String): File {
        // 将url的hashCode作为缓存的文件名
        val filename = url.hashCode().toString()
        // Another possible solution
        return File(cacheDir, filename)
    }

    /**
     * 清除缓存
     */
    fun clear() {
        if (cacheDir == null) {
            return
        }
        val files = cacheDir!!.listFiles() ?: return

        for (f in files) {

            f.delete()
        }
    }


    init {
        //noinspection ResultOfMethodCallIgnored// 如果有SD卡则在SD卡中建一个LazyList的目录存放缓存的图片
        // 没有SD卡就放在系统的缓存目录中
        if (android.os.Environment.getExternalStorageState() == android.os.Environment.MEDIA_MOUNTED) {
            cacheDir = FileUtil.App_Cache
        } else {
            cacheDir = context.cacheDir
        }

        //如果目录不存在，那么创建一个缓存目录
        if (!cacheDir!!.exists()) {
            //noinspection ResultOfMethodCallIgnored
            cacheDir!!.mkdirs()
        }
    }
}